package com.xbai.spark.core.transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
  * groupBy(func) 算子
  * 作用：分组，按照传入函数的返回值进行分组。将相同的key对应的值放入一个迭代器。
  * 案例：创建一个RDD，按照元素模以2的值进行分组。
  *
  * @author xbai
  * @Date 2020/12/28
  */
object Spark07_GroupBy {

  def main(args: Array[String]): Unit = {
    val conf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("groupBy")
    val sc = new SparkContext(conf)

    val listRDD: RDD[Int] = sc.makeRDD(1 to 16, 4)
    val groupByRDD: RDD[(Int, Iterable[Int])] = listRDD.groupBy(_ % 2)
    groupByRDD.collect().foreach(println)
  }
}
